The present invention relates generally to computer processing, and more particularly to techniques for performing sub-configuration of complicated entities.
For many applications, it is necessary to define and represent complicated structures or entities. A complicated entity may include multiple components, each of which may be configurable and may further include sub-components. As the number of components and sub-components increases, the task of modeling such entity also (exponentially) increases along with the resources needed to represent the entity.
One example of such a complicated entity may be a computer system offered for sale by a vendor. The computer system may include a number of components (e.g., chassis, processor, storage, and so on) that may be customized to suit a buyer's preference and requirements. Each component may be associated with a number of possible choices (e.g., the chassis may be tall, medium, or short). A buyer may then customize the computer system by selecting a particular choice for each component.
The configuration of a complicated entity can be challenging. For practical considerations and possibly due to system constraints, not all possible combinations of choices for the components (i.e., configurations) may be available or valid. In one conventional implementation, rules and constraints may be defined to validate configurations. These rules and constraints may be invoked once a specific configuration has been selected, and are used to determine whether or not that configuration is valid. In another conventional implementation, all valid configurations may be defined in a master table. Once a specific configuration has been selected, the master table may be consulted to validate the configuration. However, this master table may be very large for a complicated entity.
Besides the complexity in representing complicated entities and valid configurations, other challenges may also be associated with the configuration process. For example, if the validation of a selected configuration is performed after all choices have been selected and the configuration is then deemed to be invalid, then the selection process may need to be repeated again. Each iteration of the selection and validation processes is typically associated with a cost that should be minimized. Moreover, it may be desirable to provide recommendations based on choices that have already been selected, and this may be difficult to support using the conventional rules/constraints or a master table.
Thus, techniques that can be used to support configuration of complicated entities are highly desirable.